--
-- Author: ping.wang
-- Date: 2019-02-28 15:48:12
--
-- PvpDuelLeftPanel
--
local IconRender = require("app.widget.renders.IconRender")
local ClassRef = app.mvc.createPanelClass(...)

--data =
function ClassRef.createWithData(data, node)
    local sprite = ClassRef.extend(node or cc.CSLoader:createNode(Res.PvpDuelLeftNode))
    if node == nil then
        ccui.Helper:doLayout(sprite)
    end
    sprite:init(data)
    return sprite
end
function ClassRef.create(node)
    return ClassRef.createWithData(nil, node)
end

--
function ClassRef:init(data)
    self.super.init(self, data)
    self:setContentSize( self._ui.Panel:getContentSize() )

    self._rankLabel = self._ui.rank_num --在有排名的时候显示排名 无排名的时候不显示 显示无排名的文本
    -- self._ui.rank_no 没有排名的时候显示该文字
    self._awardIcons = {} --奖励的icon 最多3个 最少一个都没
    for i = 1, 3 do
        local ir = IconRender.create( self._ui.Panel:getChildByName("icon"..i))
        table.insert(self._awardIcons,ir)
        ir:setTipEnable(true)
        ir:setVisible(false)
    end

    --self._ui.rank 需要显示 当前排名 或者 暂无排名两种文本

    --排行榜
    self._ui.btn_rank:addClickEventListener(function()
        UIHandler:handleMessage({id = Constant.FUNC_TYPE_RANK, mode = "open", rankingId = 1201})
    end)

    --对战记录
    self._ui.btn_record:addClickEventListener(function()
        executeFunc(self._onOperate, "openDuelRecordView")
    end)

    --说明按钮
    self._ui.btn_doubt:addClickEventListener(function()
        executeFunc(self._onOperate, "openDuelBookView")
    end)
    self:refresh()
end

--data =
function ClassRef:refresh()
    if self._data then
        self:setVisible( true )

        local data = self._data
        local rankNum = data:getRankNum()
        local rankLower = tonumber(GD:getSystemPar("duelGameRankingLower"))
        local haveRanking = rankNum > 0 and rankNum <= rankLower
        if haveRanking then
            self._ui.rank_num:setVisible(true)
            self._ui.rank_num:setString(tostring(rankNum)) --这里要显示排名
            self._ui.rank_no:setVisible(false)
            self._ui.rank:setString(L("duelGametips2"))

            self:_showReward(rankNum)
        else
            self._ui.rank_num:setVisible(false)
            self._ui.rank_no:setVisible(true)
            self._ui.rank:setString(L("duelGametips4"))

            self._ui.tips_time:setVisible(false)
            self._ui.tips:setVisible(false)

            for _,v in ipairs(self._awardIcons) do
                v:setVisible(false)
            end
        end
    else
        self:setVisible( false )
    end
end

--根据排名显示奖励
function ClassRef:_showReward(rankId)
    local rankInfo = GD:getRankingConfigById(1201)
    local arrItems = string.split(rankInfo.rewardShow, ";")
    local length = #arrItems
    local award = {}
    for i = 1, length do
        local arrDatas = string.split(arrItems[i], "|")
        local szRank = arrDatas[1]
        local dropId = tonumber(arrDatas[2])
        local paimingArea = string.split(szRank, "-")
        if #paimingArea == 1 then
            if rankId == tonumber(paimingArea[1]) then
                award = UD:parseDropToBagItem(dropId)
                break
            end
        elseif #paimingArea == 2 then
            if rankId >= tonumber(paimingArea[1]) and rankId <= tonumber(paimingArea[2]) then
                award = UD:parseDropToBagItem(dropId)
                break
            end
        end
    end

    for _,v in ipairs(self._awardIcons) do
        v:setVisible(false)
    end

    if #award > 0 then
        --有奖励
        for i, itemData in ipairs(award) do
            if i <= #self._awardIcons then
                self._awardIcons[i]:setData(itemData)
                self._awardIcons[i]:setVisible(true)
            end
        end
        self._ui.tips_time:setVisible(true)
        self._ui.tips:setVisible(true)
    else
        self._ui.tips_time:setVisible(false)
        self._ui.tips:setVisible(false)
    end
end

function ClassRef:onOperate(cb)
    self._onOperate = cb
end

return ClassRef
